package com.wuxianedu.loadimage;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.ImageView;

import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 请求网络的步骤
 * 1. 拿到URl对象  url
 * 2. 拿到连接对象 conn =  url.openConnection();(之后呢，可以进行一些网络设置)
 * 3. conn.connect() {可以省略的}
 * 4. 拿到返回码，判断有没有请求成功 == 200？
 * 5. 拿到输入流-----解析流  PrintWriter  BufferedReader
 *
 *
 * 关于bitmap
 * bitmap没有提供对外的构造器（ 不能够new）
 *  1.BitmapFactory.decodeXXX()可以从 流 文件系统  字节数组  资源文件  （只读）
 *  2.Bitmap.createBitmap()  （可读可写的）
 *
 *
 *  BitmapFactory.Options 在解析图片时的一些参数
 * Created by TED on 2016/9/30.
 */
public class loadImageUtil {


    public static void loadImage(final String urlStr ,  final ImageView imageView, final LoadImageListener listener) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {


                    URL url = new URL(urlStr);
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                    urlConnection.setConnectTimeout(10000); // 连接超时
                    urlConnection.connect();

                    if (urlConnection.getResponseCode() == 200){ //请求成功

                        Bitmap bitmap = BitmapFactory.decodeStream(urlConnection.getInputStream());
                        listener.loadImageSuccess(bitmap, urlStr , imageView);
                    } else{ //请求失败
                        listener.loadImageFailed();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }


    public interface LoadImageListener{
        void loadImageSuccess(Bitmap bitmap, String url ,ImageView imageView);
        void loadImageFailed();

    }
}
